package com.teamin.service.impl;

import com.teamin.entity.CircleLogEntity;
import com.teamin.entity.TaskLogEntity;
import com.teamin.mapper.LogMapper;
import com.teamin.service.LogService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import java.util.List;

@Component
public class LogServiceImpl implements LogService {
	private Logger logger = LoggerFactory.getLogger(this.getClass());

	@Autowired
	private LogMapper logMapper;

	/**
	 * 插入圈子的日志
	 * @param circleId 圈子ID
	 * @param handle 操作 如新增,修改,删除
	 * @param handleField 操作类型 如名称,详情
	 * @param handleUser 操作用户ID
	 * @param handleUserName 操作者用户名
	 * @param value 具体数值
	 * @return
	 */
	@Override
	public int insertCircleLog(Long circleId, HANDLE handle, CircleHandleField handleField, Long handleUser, String handleUserName, String value){
		return logMapper.insertCircleLog(circleId, handle.getValue(), handleField.getValue(), handleUser,handleUserName,value,null) ;
	}

	/**
	 * 插入圈子的日志
	 * @param circleId 圈子ID
	 * @param handle 操作 如新增,修改,删除
	 * @param handleField 操作类型 如名称,详情
	 * @param handleUser 操作用户ID
	 * @param handleUserName 操作者用户名
	 * @param value 具体数值
	 * @return
	 */
	@Override
	public int insertCircleLog(Long circleId, HANDLE handle, CircleHandleField handleField, Long handleUser, String handleUserName, String value, String oldValue){
		return logMapper.insertCircleLog(circleId, handle.getValue(), handleField.getValue(), handleUser,handleUserName,value,oldValue) ;
	}

	/**
	 * 插入圈子的日志
	 * @param tasskId 任务ID
	 * @param handle 操作 如新增,修改,删除
	 * @param handleField 操作类型 如名称,详情
	 * @param handleUser 操作用户ID
	 * @param handleUserName 操作者用户名
	 * @param value 具体数值
	 * @return
	 */
	@Override
	public int insertTaskLog(Long tasskId, HANDLE handle, TaskHandleField handleField, Long handleUser, String handleUserName, String value){
		return logMapper.insertTaskLog(tasskId, handle.getValue(), handleField.getValue(), handleUser,handleUserName,value,null) ;
	}

	/**
	 * 插入圈子的日志
	 * @param tasskId 任务ID
	 * @param handle 操作 如新增,修改,删除
	 * @param handleField 操作类型 如名称,详情
	 * @param handleUser 操作用户ID
	 * @param handleUserName 操作者用户名
	 * @param value 具体数值
	 * @return
	 */
	@Override
	public int insertTaskLog(Long tasskId, HANDLE handle, TaskHandleField handleField, Long handleUser, String handleUserName, String value, String oldValue) {
		return logMapper.insertTaskLog(tasskId, handle.getValue(), handleField.getValue(), handleUser,handleUserName,value,oldValue) ;
	}

	/**
	 * 获取任务的日志
	 * @param taskId
	 * @return
	 */
	@Override
	public List<TaskLogEntity> selectTaskLog(Long taskId){
		return logMapper.selectTaskLog(taskId) ;
	}
	/**
	 * 获圈子的日志
	 * @param circleId
	 * @return
	 */
	@Override
	public List<CircleLogEntity> selectCircleLog(Long circleId){
		return logMapper.selectCircleLog(circleId) ;
	}
}
